package com.huya.k12.translate.service;

import java.util.List;
import java.util.Map;

import com.huya.k12.translate.model.entity.Word;
import com.huya.k12.translate.model.query.WordQuery;
import com.huya.k12.translate.model.vo.PageControl;
import com.huya.k12.translate.model.vo.WordVo;

public interface WordService {
	
	/**
	 * 根据id获取单词
	 * @param id
	 * @return
	 */
	Word get(Integer id);

	/**
	 * 获取所有单词
	 * @return
	 */
	List<Word> listAll();
	
	
	/**
	 * 获取所有单词的数量
	 * @return
	 */
	Integer countData(WordQuery query);
	
	
	/**
	 * 根据查询条件获取单词
	 * @param query
	 * @param pageControl
	 * @return
	 */
	List<Word> listByQuery(WordQuery query, PageControl pageControl);
	
	/**初始化单词表
	 * @param map
	 * @return
	 */
	boolean init(List<Word> wordList);
	
	/**
	 * 根据wordId获取对应单词
	 * @param wordId
	 * @return
	 */
	Word get(String wordId);
	
	/**
	 * 编辑单词
	 * @param word
	 * @return
	 */
	boolean edit(Word word);
	
	/**根据运营端修改状态获取单词
	 * @param status
	 * @return
	 */
	List<Word> listByStatus(Integer status);
	
	/**
	 * 添加安卓端修改xml增加的单词
	 * @param list
	 * @return
	 */
	boolean addWord(List<Word> list);
	
	/**
	 * 修改安卓端修改xml时修改的单词
	 * @param list
	 * @return
	 */
	boolean updateWord(List<Word> list);
	
	/**
	 * word 实体类转化为 wordVo 实体类
	 * @return
	 */
	List<WordVo> wordVoList();
	
	
	/**
	 * 根据国家缩写更新对应语言
	 * @param map
	 * @param countryCode
	 */
	void updateByCountryCode(Map<String,String> map, String countryCode);
	
	/**
	 * 初始化数据库
	 */
	void initDB();
	
	
	/**
	 * 运营端修改状态重置
	 */
	void resetStatus();
	
	/**
	 * 删除单词
	 * @param list
	 */
	void deleteWord(List<Word> list);
}
